A network system comprises the hardware and supporting software that directs information between computers. The network itself may be a shared local area network (LAN), wide area network (WAN), metropolitan area network (MAN), the Internet, or any other type of network or communication system suitable for transferring information between computer systems. The network hardware comprises switches, used to connect computers on a common network, and routers, used to make interconnections between networks, where the collection of computers, switches, routers, and other devices used in a network environment, can be referred to as network nodes.
The Open Systems Interconnection (OSI) model is a standardized seven-layer division of the various communication functions included in a network, and incorporates the functions outlined in the four layers of the internet protocol suite (TCP/IP), which is an earlier set of communication protocols used for internet communication. Within the OSI model, data to be communicated on a network is broken down into discrete subdivisions, with each subdivision communicated separately, and re-assembled at a destination. These data subdivisions can be packaged in different ways depending on the layer of the OSI model that is being used, and the packages may be referred to as packets, datagrams, frames, and cells, among others. A packet is a data package associated with the network layer of the OSI model, but is commonly used to refer to a general package of information sent on a network, which is the interpretation that will be used in the description that follows.
The operation of network hardware, such as switches and routers, can be conceptually divided between a data-plane, and a control-plane, where the data-plane comprises the software and hardware that handles the forwarding of data through to another network node. The control-plane, in contrast, comprises the software and hardware that analyzes data packets arriving at, for example, a switch port, and decides what actions should be taken in response to the data packet's arrival. The control-plane maintains a routing table, listing all network addresses reachable from the given switch, and instructs the data-plane as to how to forward the packet.
A software-defined network, as recited by OpenFlow (openflow.org), is a methodology that allows for centralized control of a large network of hardware. The control-plane is removed from the individual switches and routers, and replaced by an OpenFlow agent (OFA) that allows for remote control from a global control-plane, otherwise referred to as a network operating system, OpenFlow Controller (OFC), centralized controller, or simply a controller.
In the description that follows, which refers to a software-defined network, or centrally-controlled network, the control-plane network, or alternatively, the control connections, can be considered the combination of hardware links and supporting software that connect a node to a centralized controller. Related to this, the data-plane network, or alternatively, the data connections, can be considered the combination of hardware links and supporting software that allow for forwarding of packets between nodes.
In some instances the communication channel between the OFC and the OFA in a network node may be disrupted. This may be due to a software, or hardware failure, and may be transient or persistent. In such instances, the OFC cannot communicate with the specific node directly through the control-plane network. However, the node itself, which will be referred to as the unreachable node, may still be functional, and forwarding packets successfully using the data-plane network. Despite this, current methods may respond to the breakdown in communication between OFC and the unreachable node by instructing other network nodes to re-route network traffic, and isolate the unreachable node. This methodology is inefficient, since it potentially burdens other network nodes with increased network traffic while the unreachable node is forwarding data successfully. Without knowing whether a disruption between the OFC and the OFA in an unreachable node is transient or persistent, the OFC can't tolerate the disruption beyond a predetermined waiting period before acting to reroute network traffic around the unreachable node. However, if it could be established that despite the disruption between the OFC and the OFA in a network node, the network node is still able to forward data successfully, then the waiting period within which the OFC waits for communication to be restored to the OFA in the unreachable node may be lengthened, before the OFC implements rerouting in the data-plane network.
As such, there is a need for more efficient systems and methods for verifying the network connections of a centrally-controlled network.